<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>catch</title>
</head>

<body>
    <script>
        function getNumber() {
            let p = new Promise(function (resolve, reject) {
                //做一些异步操作
                setTimeout(function () {
                    var nums = Math.ceil(Math.random() * 10); //随机生成10以内的数字,ceil()向上取整
                    if (nums <= 5) {
                        //如果是小于等于5的可以成功返回
                        resolve(nums)
                    } else {
                        //否则返回 数字太大了
                        reject("数字太大了")
                    }

                }, 2000);
            })
            return p;
        }

        getNumber()
            .then( //可以接收两个参数,第一个为resolve,第二个为reject
                function (data) {
                    console.log("成功")
                    console.log(data)
                    console.log(somedata); //此处的somedata未定义
                })
            .catch(function (reason) {
                console.log("失败")
                console.log(reason)
            })
            //1. 用catch的好处是程序报错的时候会进入 catch的代码块,不会造成程序 进行终止
            //2. 如果抛出异常了（代码出错了），那么并不会报错卡死js，而是会进到这个catch方法中。
    </script>
</body>

</html>